[INFO] fetching crate buffett-core 0.1.1...
[INFO] checking buffett-core-0.1.1 against master#158f00a1c5175648af6f6099b075f78d1d014a28 for pr-121251
[INFO] extracting crate buffett-core 0.1.1 into /workspace/builds/worker-7-tc1/source
[INFO] validating manifest of crates.io crate buffett-core 0.1.1 on toolchain 158f00a1c5175648af6f6099b075f78d1d014a28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate buffett-core 0.1.1
[INFO] finished tweaking crates.io crate buffett-core 0.1.1
[INFO] tweaked toml for crates.io crate buffett-core 0.1.1 written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tokio-fs v0.1.7
[INFO] [stderr]   Downloaded owning_ref v0.4.1
[INFO] [stderr]   Downloaded tokio-uds v0.2.7
[INFO] [stderr]   Downloaded sys-info v0.5.10
[INFO] [stderr]   Downloaded untrusted v0.6.2
[INFO] [stderr]   Downloaded traitobject v0.1.0
[INFO] [stderr]   Downloaded antidote v1.0.0
[INFO] [stderr]   Downloaded typeable v0.1.2
[INFO] [stderr]   Downloaded mime v0.2.6
[INFO] [stderr]   Downloaded buffett-budget v0.1.2
[INFO] [stderr]   Downloaded buffett-interface v0.1.0
[INFO] [stderr]   Downloaded libloading v0.5.2
[INFO] [stderr]   Downloaded base64 v0.9.3
[INFO] [stderr]   Downloaded bitconch-jsonrpc-server-utils v0.1.0
[INFO] [stderr]   Downloaded globset v0.4.14
[INFO] [stderr]   Downloaded nix v0.11.1
[INFO] [stderr]   Downloaded hyper v0.10.16
[INFO] [stderr]   Downloaded bstr v1.9.1
[INFO] [stderr]   Downloaded rand v0.5.6
[INFO] [stderr]   Downloaded scopeguard v0.3.3
[INFO] [stderr]   Downloaded serde_cbor v0.9.0
[INFO] [stderr]   Downloaded bitconch-jsonrpc-macros v0.1.0
[INFO] [stderr]   Downloaded env_logger v0.5.13
[INFO] [stderr]   Downloaded digest v0.7.6
[INFO] [stderr]   Downloaded generic-array v0.9.1
[INFO] [stderr]   Downloaded parking_lot_core v0.3.1
[INFO] [stderr]   Downloaded bs58 v0.2.5
[INFO] [stderr]   Downloaded unicase v1.4.2
[INFO] [stderr]   Downloaded bitconch-jsonrpc-pubsub v0.1.0
[INFO] [stderr]   Downloaded byte-tools v0.2.0
[INFO] [stderr]   Downloaded lock_api v0.1.5
[INFO] [stderr]   Downloaded bitconch-jsonrpc-core v0.1.0
[INFO] [stderr]   Downloaded parking_lot v0.6.4
[INFO] [stderr]   Downloaded ring v0.13.5
[INFO] [stderr]   Downloaded pnet_base v0.21.0
[INFO] [stderr]   Downloaded pnet_sys v0.21.0
[INFO] [stderr]   Downloaded sha2 v0.7.1
[INFO] [stderr]   Downloaded buffett-crypto v0.1.1
[INFO] [stderr]   Downloaded buffett-metrics v0.1.3
[INFO] [stderr]   Downloaded bitconch-jsonrpc-http-server v0.1.0
[INFO] [stderr]   Downloaded ipnetwork v0.12.8
[INFO] [stderr]   Downloaded hyper-native-tls v0.3.0
[INFO] [stderr]   Downloaded block-buffer v0.3.3
[INFO] [stderr]   Downloaded influx_db_client v0.3.6
[INFO] [stderr]   Downloaded buffett-timing v0.1.1
[INFO] [stderr]   Downloaded pnet_datalink v0.21.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] efcd2c75d32fce288a269e8935d91d2af2779f2cbbb645202cdcba1532c3e002
[INFO] running `Command { std: "docker" "start" "-a" "efcd2c75d32fce288a269e8935d91d2af2779f2cbbb645202cdcba1532c3e002", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "efcd2c75d32fce288a269e8935d91d2af2779f2cbbb645202cdcba1532c3e002", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "efcd2c75d32fce288a269e8935d91d2af2779f2cbbb645202cdcba1532c3e002", kill_on_drop: false }`
[INFO] [stdout] efcd2c75d32fce288a269e8935d91d2af2779f2cbbb645202cdcba1532c3e002
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] bff12a03c3651913bd0aee765ec977c66830b93e345e8a922447e756097bf081
[INFO] running `Command { std: "docker" "start" "-a" "bff12a03c3651913bd0aee765ec977c66830b93e345e8a922447e756097bf081", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.153
[INFO] [stderr]     Checking futures v0.1.31
[INFO] [stderr]    Compiling maybe-uninit v2.0.0
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]     Checking rand_core v0.3.1
[INFO] [stderr]    Compiling memoffset v0.5.6
[INFO] [stderr]     Checking lock_api v0.3.4
[INFO] [stderr]    Compiling crossbeam-epoch v0.8.2
[INFO] [stderr]    Compiling parking_lot_core v0.6.3
[INFO] [stderr]    Compiling parking_lot v0.9.0
[INFO] [stderr]    Compiling autocfg v0.1.8
[INFO] [stderr]    Compiling syn v2.0.52
[INFO] [stderr]    Compiling unicase v2.7.0
[INFO] [stderr]     Checking idna v0.1.5
[INFO] [stderr]     Checking percent-encoding v1.0.1
[INFO] [stderr]     Checking itoa v0.4.8
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling version_check v0.1.5
[INFO] [stderr]     Checking aho-corasick v1.1.2
[INFO] [stderr]     Checking adler v1.0.2
[INFO] [stderr]     Checking miniz_oxide v0.7.2
[INFO] [stderr]     Checking crossbeam-utils v0.8.19
[INFO] [stderr]    Compiling rand_chacha v0.1.1
[INFO] [stderr]    Compiling rand_pcg v0.1.2
[INFO] [stderr]    Compiling parking_lot_core v0.3.1
[INFO] [stderr]    Compiling hyper v0.12.36
[INFO] [stderr]     Checking smallvec v0.6.14
[INFO] [stderr]    Compiling unicase v1.4.2
[INFO] [stderr]     Checking url v1.7.2
[INFO] [stderr]     Checking log v0.3.9
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]     Checking safemem v0.3.3
[INFO] [stderr]     Checking gimli v0.28.1
[INFO] [stderr]     Checking owning_ref v0.4.1
[INFO] [stderr]     Checking base64 v0.9.3
[INFO] [stderr]     Checking mime v0.2.6
[INFO] [stderr]    Compiling backtrace v0.3.69
[INFO] [stderr]     Checking crossbeam-queue v0.2.3
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling rand v0.6.5
[INFO] [stderr]     Checking object v0.32.2
[INFO] [stderr]    Compiling crc32fast v1.4.0
[INFO] [stderr]     Checking rustc-demangle v0.1.23
[INFO] [stderr]     Checking scopeguard v0.3.3
[INFO] [stderr]     Checking typeable v0.1.2
[INFO] [stderr]    Compiling rayon-core v1.12.1
[INFO] [stderr]     Checking traitobject v0.1.0
[INFO] [stderr]     Checking language-tags v0.2.2
[INFO] [stderr]     Checking crossbeam-deque v0.7.4
[INFO] [stderr]     Checking lock_api v0.1.5
[INFO] [stderr]     Checking crossbeam-deque v0.8.5
[INFO] [stderr]    Compiling mime_guess v2.0.4
[INFO] [stderr]     Checking generic-array v0.9.1
[INFO] [stderr]     Checking rand_isaac v0.1.1
[INFO] [stderr]     Checking rand_xorshift v0.1.1
[INFO] [stderr]     Checking rand_hc v0.1.0
[INFO] [stderr]     Checking regex-automata v0.4.5
[INFO] [stderr]     Checking bstr v1.9.1
[INFO] [stderr]    Compiling sys-info v0.5.10
[INFO] [stderr]     Checking tokio-executor v0.1.10
[INFO] [stderr]     Checking tokio-sync v0.1.8
[INFO] [stderr]     Checking want v0.2.0
[INFO] [stderr]    Compiling ring v0.13.5
[INFO] [stderr]     Checking antidote v1.0.0
[INFO] [stderr]     Checking byte-tools v0.2.0
[INFO] [stderr]     Checking arrayref v0.3.7
[INFO] [stderr]     Checking unicode-width v0.1.11
[INFO] [stderr]     Checking tokio-current-thread v0.1.7
[INFO] [stderr]     Checking tokio-timer v0.2.13
[INFO] [stderr]     Checking bs58 v0.2.5
[INFO] [stderr]     Checking block-buffer v0.3.3
[INFO] [stderr]     Checking digest v0.7.6
[INFO] [stderr]     Checking publicsuffix v1.5.6
[INFO] [stderr]    Compiling libloading v0.5.2
[INFO] [stderr]     Checking try_from v0.3.2
[INFO] [stderr]     Checking fake-simd v0.1.2
[INFO] [stderr]     Checking half v1.8.3
[INFO] [stderr]    Compiling nix v0.11.1
[INFO] [stderr]     Checking dtoa v0.4.8
[INFO] [stderr]     Checking untrusted v0.6.2
[INFO] [stderr]     Checking iana-time-zone v0.1.60
[INFO] [stderr]     Checking sha2 v0.7.1
[INFO] [stderr]     Checking flate2 v1.0.28
[INFO] [stderr]     Checking textwrap v0.11.0
[INFO] [stderr]     Checking base64 v0.10.1
[INFO] [stderr]     Checking vec_map v0.8.2
[INFO] [stderr]     Checking buffett-timing v0.1.1
[INFO] [stderr]     Checking rayon v1.9.0
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking num_cpus v1.16.0
[INFO] [stderr]     Checking net2 v0.2.39
[INFO] [stderr]     Checking time v0.1.45
[INFO] [stderr]     Checking bytes v0.4.12
[INFO] [stderr]     Checking openssl-sys v0.9.101
[INFO] [stderr]     Checking rand v0.5.6
[INFO] [stderr]     Checking tokio-threadpool v0.1.18
[INFO] [stderr]     Checking futures-cpupool v0.1.8
[INFO] [stderr]     Checking mio v0.6.23
[INFO] [stderr]     Checking rand_os v0.1.3
[INFO] [stderr]     Checking hyper v0.10.16
[INFO] [stderr]     Checking tokio-io v0.1.13
[INFO] [stderr]     Checking http v0.1.21
[INFO] [stderr]     Checking tokio-buf v0.1.1
[INFO] [stderr]     Checking string v0.2.1
[INFO] [stderr]     Checking cookie v0.12.0
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]    Compiling synstructure v0.12.6
[INFO] [stderr]     Checking tokio-codec v0.1.2
[INFO] [stderr]     Checking tokio-fs v0.1.7
[INFO] [stderr]     Checking tokio-reactor v0.1.12
[INFO] [stderr]     Checking mio-uds v0.6.8
[INFO] [stderr]     Checking pnet_sys v0.21.0
[INFO] [stderr]     Checking addr2line v0.21.0
[INFO] [stderr]     Checking pnet_base v0.21.0
[INFO] [stderr]     Checking tokio-uds v0.2.7
[INFO] [stderr]     Checking tokio-tcp v0.1.4
[INFO] [stderr]     Checking tokio-udp v0.1.6
[INFO] [stderr]     Checking parking_lot v0.6.4
[INFO] [stderr]     Checking uuid v0.7.4
[INFO] [stderr]     Checking ipnetwork v0.12.8
[INFO] [stderr]     Checking ansi_term v0.12.1
[INFO] [stderr]     Checking tokio v0.1.22
[INFO] [stderr]     Checking dirs v1.0.5
[INFO] [stderr]     Checking pnet_datalink v0.21.0
[INFO] [stderr]     Checking socket2 v0.3.19
[INFO] [stderr]     Checking getopts v0.2.21
[INFO] [stderr]     Checking itertools v0.7.11
[INFO] [stderr]     Checking clap v2.34.0
[INFO] [stderr]     Checking globset v0.4.14
[INFO] [stderr]     Checking regex v1.10.3
[INFO] [stderr]     Checking env_logger v0.5.13
[INFO] [stderr]    Compiling failure_derive v0.1.8
[INFO] [stderr]     Checking http-body v0.1.0
[INFO] [stderr]     Checking h2 v0.1.26
[INFO] [stderr]    Compiling serde_derive v1.0.197
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]     Checking failure v0.1.8
[INFO] [stderr]     Checking openssl v0.10.64
[INFO] [stderr]     Checking serde v1.0.197
[INFO] [stderr]     Checking native-tls v0.2.11
[INFO] [stderr]     Checking hyper-native-tls v0.3.0
[INFO] [stderr]     Checking hyper-tls v0.3.2
[INFO] [stderr]     Checking serde_json v1.0.114
[INFO] [stderr]     Checking generic-array v0.12.4
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking serde_cbor v0.9.0
[INFO] [stderr]     Checking serde_urlencoded v0.5.5
[INFO] [stderr]     Checking chrono v0.4.34
[INFO] [stderr]     Checking buffett-interface v0.1.0
[INFO] [stderr]     Checking bitconch-jsonrpc-core v0.1.0
[INFO] [stderr]     Checking cookie_store v0.7.0
[INFO] [stderr]     Checking influx_db_client v0.3.6
[INFO] [stderr]     Checking buffett-crypto v0.1.1
[INFO] [stderr]     Checking buffett-metrics v0.1.3
[INFO] [stderr]     Checking reqwest v0.9.24
[INFO] [stderr]     Checking bitconch-jsonrpc-server-utils v0.1.0
[INFO] [stderr]     Checking bitconch-jsonrpc-pubsub v0.1.0
[INFO] [stderr]     Checking buffett-budget v0.1.2
[INFO] [stderr]     Checking bitconch-jsonrpc-macros v0.1.0
[INFO] [stderr]     Checking bitconch-jsonrpc-http-server v0.1.0
[INFO] [stderr]     Checking buffett-core v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]     --> src/crdt.rs:1205:10
[INFO] [stdout]      |
[INFO] [stdout] 1205 |         };
[INFO] [stdout]      |          ^ help: remove this semicolon
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/fullnode.rs:493:34
[INFO] [stdout]     |
[INFO] [stdout] 493 |     pub fn close(self) -> Result<(Option<FullnodeReturnType>)> {
[INFO] [stdout]     |                                  ^                          ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 493 -     pub fn close(self) -> Result<(Option<FullnodeReturnType>)> {
[INFO] [stdout] 493 +     pub fn close(self) -> Result<Option<FullnodeReturnType>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/packet.rs:26:30
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub const BLOB_SIZE: usize = (64 * 1024 - 128); // wikipedia says there should be 20b for ipv4 headers
[INFO] [stdout]    |                              ^               ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 26 - pub const BLOB_SIZE: usize = (64 * 1024 - 128); // wikipedia says there should be 20b for ipv4 headers
[INFO] [stdout] 26 + pub const BLOB_SIZE: usize = 64 * 1024 - 128; // wikipedia says there should be 20b for ipv4 headers
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/replicate_stage.rs:101:50
[INFO] [stdout]     |
[INFO] [stdout] 101 |                 let _exit = Finalizer::new(exit);;
[INFO] [stdout]     |                                                  ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:100:39
[INFO] [stdout]     |
[INFO] [stdout] 100 |         fn confirm_transaction(&self, Self::Metadata, String) -> Result<bool>;
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout]     = note: `#[warn(anonymous_parameters)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:100:55
[INFO] [stdout]     |
[INFO] [stdout] 100 |         fn confirm_transaction(&self, Self::Metadata, String) -> Result<bool>;
[INFO] [stdout]     |                                                       ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: String`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:103:36
[INFO] [stdout]     |
[INFO] [stdout] 103 |         fn get_account_info(&self, Self::Metadata, String) -> Result<Account>;
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:103:52
[INFO] [stdout]     |
[INFO] [stdout] 103 |         fn get_account_info(&self, Self::Metadata, String) -> Result<Account>;
[INFO] [stdout]     |                                                    ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: String`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:106:31
[INFO] [stdout]     |
[INFO] [stdout] 106 |         fn get_balance(&self, Self::Metadata, String) -> Result<i64>;
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:106:47
[INFO] [stdout]     |
[INFO] [stdout] 106 |         fn get_balance(&self, Self::Metadata, String) -> Result<i64>;
[INFO] [stdout]     |                                               ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: String`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:109:32
[INFO] [stdout]     |
[INFO] [stdout] 109 |         fn get_finality(&self, Self::Metadata) -> Result<usize>;
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:112:31
[INFO] [stdout]     |
[INFO] [stdout] 112 |         fn get_last_id(&self, Self::Metadata) -> Result<String>;
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:115:40
[INFO] [stdout]     |
[INFO] [stdout] 115 |         fn get_signature_status(&self, Self::Metadata, String) -> Result<RpcSignatureStatus>;
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:115:56
[INFO] [stdout]     |
[INFO] [stdout] 115 |         fn get_signature_status(&self, Self::Metadata, String) -> Result<RpcSignatureStatus>;
[INFO] [stdout]     |                                                        ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: String`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:118:41
[INFO] [stdout]     |
[INFO] [stdout] 118 |         fn get_transaction_count(&self, Self::Metadata) -> Result<u64>;
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:121:35
[INFO] [stdout]     |
[INFO] [stdout] 121 |         fn request_airdrop(&self, Self::Metadata, String, u64) -> Result<String>;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:121:51
[INFO] [stdout]     |
[INFO] [stdout] 121 |         fn request_airdrop(&self, Self::Metadata, String, u64) -> Result<String>;
[INFO] [stdout]     |                                                   ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: String`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:121:59
[INFO] [stdout]     |
[INFO] [stdout] 121 |         fn request_airdrop(&self, Self::Metadata, String, u64) -> Result<String>;
[INFO] [stdout]     |                                                           ^^^ help: try naming the parameter or explicitly ignoring it: `_: u64`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:124:36
[INFO] [stdout]     |
[INFO] [stdout] 124 |         fn send_transaction(&self, Self::Metadata, Vec<u8>) -> Result<String>;
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:124:52
[INFO] [stdout]     |
[INFO] [stdout] 124 |         fn send_transaction(&self, Self::Metadata, Vec<u8>) -> Result<String>;
[INFO] [stdout]     |                                                    ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Vec<u8>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/tpu.rs:81:37
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn join(self) -> thread::Result<(Option<TpuReturnType>)> {
[INFO] [stdout]    |                                     ^                     ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 81 -     fn join(self) -> thread::Result<(Option<TpuReturnType>)> {
[INFO] [stdout] 81 +     fn join(self) -> thread::Result<Option<TpuReturnType>> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `tmp_ledger_path` in this scope
[INFO] [stdout]    --> src/ledger.rs:550:16
[INFO] [stdout]     |
[INFO] [stdout] 550 |     let path = tmp_ledger_path(name);
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] note: function `token_service::tests::tmp_ledger_path` exists but is inaccessible
[INFO] [stdout]    --> src/token_service.rs:312:5
[INFO] [stdout]     |
[INFO] [stdout] 312 |     fn tmp_ledger_path(name: &str) -> String {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not accessible
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `tmp_ledger_path` in this scope
[INFO] [stdout]    --> src/ledger.rs:724:27
[INFO] [stdout]     |
[INFO] [stdout] 724 |         let ledger_path = tmp_ledger_path("test_ledger_reader_writer");
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] note: function `token_service::tests::tmp_ledger_path` exists but is inaccessible
[INFO] [stdout]    --> src/token_service.rs:312:5
[INFO] [stdout]     |
[INFO] [stdout] 312 |     fn tmp_ledger_path(name: &str) -> String {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not accessible
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `tmp_ledger_path` in this scope
[INFO] [stdout]    --> src/ledger.rs:804:27
[INFO] [stdout]     |
[INFO] [stdout] 804 |         let ledger_path = tmp_ledger_path("test_recover_ledger");
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] note: function `token_service::tests::tmp_ledger_path` exists but is inaccessible
[INFO] [stdout]    --> src/token_service.rs:312:5
[INFO] [stdout]     |
[INFO] [stdout] 312 |     fn tmp_ledger_path(name: &str) -> String {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not accessible
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `tmp_ledger_path` in this scope
[INFO] [stdout]    --> src/ledger.rs:855:27
[INFO] [stdout]     |
[INFO] [stdout] 855 |         let ledger_path = tmp_ledger_path("test_verify_ledger");
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] note: function `token_service::tests::tmp_ledger_path` exists but is inaccessible
[INFO] [stdout]    --> src/token_service.rs:312:5
[INFO] [stdout]     |
[INFO] [stdout] 312 |     fn tmp_ledger_path(name: &str) -> String {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not accessible
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]     --> src/crdt.rs:1205:10
[INFO] [stdout]      |
[INFO] [stdout] 1205 |         };
[INFO] [stdout]      |          ^ help: remove this semicolon
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/fullnode.rs:493:34
[INFO] [stdout]     |
[INFO] [stdout] 493 |     pub fn close(self) -> Result<(Option<FullnodeReturnType>)> {
[INFO] [stdout]     |                                  ^                          ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 493 -     pub fn close(self) -> Result<(Option<FullnodeReturnType>)> {
[INFO] [stdout] 493 +     pub fn close(self) -> Result<Option<FullnodeReturnType>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Keypair`
[INFO] [stdout]   --> src/ledger.rs:17:33
[INFO] [stdout]    |
[INFO] [stdout] 17 | use buffett_crypto::signature::{Keypair, KeypairUtil};
[INFO] [stdout]    |                                 ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `buffett_crypto::hash::Hash`
[INFO] [stdout]  --> src/packet.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use buffett_crypto::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Block`, `next_entries_mut`
[INFO] [stdout]  --> src/packet.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::ledger::{next_entries_mut, Block};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/packet.rs:26:30
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub const BLOB_SIZE: usize = (64 * 1024 - 128); // wikipedia says there should be 20b for ipv4 headers
[INFO] [stdout]    |                              ^               ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 26 - pub const BLOB_SIZE: usize = (64 * 1024 - 128); // wikipedia says there should be 20b for ipv4 headers
[INFO] [stdout] 26 + pub const BLOB_SIZE: usize = 64 * 1024 - 128; // wikipedia says there should be 20b for ipv4 headers
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/replicate_stage.rs:101:50
[INFO] [stdout]     |
[INFO] [stdout] 101 |                 let _exit = Finalizer::new(exit);;
[INFO] [stdout]     |                                                  ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:100:39
[INFO] [stdout]     |
[INFO] [stdout] 100 |         fn confirm_transaction(&self, Self::Metadata, String) -> Result<bool>;
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout]     = note: `#[warn(anonymous_parameters)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:100:55
[INFO] [stdout]     |
[INFO] [stdout] 100 |         fn confirm_transaction(&self, Self::Metadata, String) -> Result<bool>;
[INFO] [stdout]     |                                                       ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: String`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:103:36
[INFO] [stdout]     |
[INFO] [stdout] 103 |         fn get_account_info(&self, Self::Metadata, String) -> Result<Account>;
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:103:52
[INFO] [stdout]     |
[INFO] [stdout] 103 |         fn get_account_info(&self, Self::Metadata, String) -> Result<Account>;
[INFO] [stdout]     |                                                    ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: String`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:106:31
[INFO] [stdout]     |
[INFO] [stdout] 106 |         fn get_balance(&self, Self::Metadata, String) -> Result<i64>;
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:106:47
[INFO] [stdout]     |
[INFO] [stdout] 106 |         fn get_balance(&self, Self::Metadata, String) -> Result<i64>;
[INFO] [stdout]     |                                               ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: String`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:109:32
[INFO] [stdout]     |
[INFO] [stdout] 109 |         fn get_finality(&self, Self::Metadata) -> Result<usize>;
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:112:31
[INFO] [stdout]     |
[INFO] [stdout] 112 |         fn get_last_id(&self, Self::Metadata) -> Result<String>;
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:115:40
[INFO] [stdout]     |
[INFO] [stdout] 115 |         fn get_signature_status(&self, Self::Metadata, String) -> Result<RpcSignatureStatus>;
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:115:56
[INFO] [stdout]     |
[INFO] [stdout] 115 |         fn get_signature_status(&self, Self::Metadata, String) -> Result<RpcSignatureStatus>;
[INFO] [stdout]     |                                                        ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: String`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:118:41
[INFO] [stdout]     |
[INFO] [stdout] 118 |         fn get_transaction_count(&self, Self::Metadata) -> Result<u64>;
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:121:35
[INFO] [stdout]     |
[INFO] [stdout] 121 |         fn request_airdrop(&self, Self::Metadata, String, u64) -> Result<String>;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:121:51
[INFO] [stdout]     |
[INFO] [stdout] 121 |         fn request_airdrop(&self, Self::Metadata, String, u64) -> Result<String>;
[INFO] [stdout]     |                                                   ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: String`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:121:59
[INFO] [stdout]     |
[INFO] [stdout] 121 |         fn request_airdrop(&self, Self::Metadata, String, u64) -> Result<String>;
[INFO] [stdout]     |                                                           ^^^ help: try naming the parameter or explicitly ignoring it: `_: u64`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:124:36
[INFO] [stdout]     |
[INFO] [stdout] 124 |         fn send_transaction(&self, Self::Metadata, Vec<u8>) -> Result<String>;
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:124:52
[INFO] [stdout]     |
[INFO] [stdout] 124 |         fn send_transaction(&self, Self::Metadata, Vec<u8>) -> Result<String>;
[INFO] [stdout]     |                                                    ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Vec<u8>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/tpu.rs:81:37
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn join(self) -> thread::Result<(Option<TpuReturnType>)> {
[INFO] [stdout]    |                                     ^                     ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 81 -     fn join(self) -> thread::Result<(Option<TpuReturnType>)> {
[INFO] [stdout] 81 +     fn join(self) -> thread::Result<Option<TpuReturnType>> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]  --> src/logger.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::{Once, ONCE_INIT};
[INFO] [stdout]   |                       ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]  --> src/logger.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 | static INIT: Once = ONCE_INIT;
[INFO] [stdout]   |                     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]   |
[INFO] [stdout] 4 | static INIT: Once = Once::new();
[INFO] [stdout]   |                     ~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]  --> src/logger.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::{Once, ONCE_INIT};
[INFO] [stdout]   |                       ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]  --> src/logger.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 | static INIT: Once = ONCE_INIT;
[INFO] [stdout]   |                     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]   |
[INFO] [stdout] 4 | static INIT: Once = Once::new();
[INFO] [stdout]   |                     ~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/choose_gossip_peer_strategy.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 |     random: &'a Fn() -> u64,
[INFO] [stdout]    |                 ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 16 |     random: &'a dyn Fn() -> u64,
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/choose_gossip_peer_strategy.rs:44:20
[INFO] [stdout]    |
[INFO] [stdout] 44 |     get_stake: &'a Fn(Pubkey) -> f64,
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |     get_stake: &'a dyn Fn(Pubkey) -> f64,
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/result.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 |     JoinError(Box<Any + Send + 'static>),
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 16 |     JoinError(Box<dyn Any + Send + 'static>),
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/choose_gossip_peer_strategy.rs:21:28
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(random: &'a Fn() -> u64) -> Self {
[INFO] [stdout]    |                            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(random: &'a dyn Fn() -> u64) -> Self {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/choose_gossip_peer_strategy.rs:51:24
[INFO] [stdout]    |
[INFO] [stdout] 51 |         get_stake: &'a Fn(Pubkey) -> f64,
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 51 |         get_stake: &'a dyn Fn(Pubkey) -> f64,
[INFO] [stdout]    |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/choose_gossip_peer_strategy.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 |     random: &'a Fn() -> u64,
[INFO] [stdout]    |                 ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 16 |     random: &'a dyn Fn() -> u64,
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/choose_gossip_peer_strategy.rs:44:20
[INFO] [stdout]    |
[INFO] [stdout] 44 |     get_stake: &'a Fn(Pubkey) -> f64,
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |     get_stake: &'a dyn Fn(Pubkey) -> f64,
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/result.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 |     JoinError(Box<Any + Send + 'static>),
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 16 |     JoinError(Box<dyn Any + Send + 'static>),
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/choose_gossip_peer_strategy.rs:21:28
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(random: &'a Fn() -> u64) -> Self {
[INFO] [stdout]    |                            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(random: &'a dyn Fn() -> u64) -> Self {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/choose_gossip_peer_strategy.rs:51:24
[INFO] [stdout]    |
[INFO] [stdout] 51 |         get_stake: &'a Fn(Pubkey) -> f64,
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 51 |         get_stake: &'a dyn Fn(Pubkey) -> f64,
[INFO] [stdout]    |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/result.rs:69:29
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl std::convert::From<Box<Any + Send + 'static>> for Error {
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl std::convert::From<Box<dyn Any + Send + 'static>> for Error {
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/result.rs:70:20
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn from(e: Box<Any + Send + 'static>) -> Error {
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn from(e: Box<dyn Any + Send + 'static>) -> Error {
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/wallet.rs:100:32
[INFO] [stdout]     |
[INFO] [stdout] 100 | ) -> Result<WalletCommand, Box<error::Error>> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 100 | ) -> Result<WalletCommand, Box<dyn error::Error>> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/wallet.rs:281:69
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub fn process_command(config: &WalletConfig) -> Result<String, Box<error::Error>> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub fn process_command(config: &WalletConfig) -> Result<String, Box<dyn error::Error>> {
[INFO] [stdout]     |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/wallet.rs:567:64
[INFO] [stdout]     |
[INFO] [stdout] 567 | pub fn gen_keypair_file(outfile: String) -> Result<String, Box<error::Error>> {
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 567 | pub fn gen_keypair_file(outfile: String) -> Result<String, Box<dyn error::Error>> {
[INFO] [stdout]     |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/wallet.rs:635:59
[INFO] [stdout]     |
[INFO] [stdout] 635 | fn get_last_id(config: &WalletConfig) -> Result<Hash, Box<error::Error>> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 635 | fn get_last_id(config: &WalletConfig) -> Result<Hash, Box<dyn error::Error>> {
[INFO] [stdout]     |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/wallet.rs:652:25
[INFO] [stdout]     |
[INFO] [stdout] 652 | ) -> Result<String, Box<error::Error>> {
[INFO] [stdout]     |                         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 652 | ) -> Result<String, Box<dyn error::Error>> {
[INFO] [stdout]     |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/wallet.rs:70:32
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn cause(&self) -> Option<&error::Error> {
[INFO] [stdout]    |                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/wallet.rs:598:28
[INFO] [stdout]     |
[INFO] [stdout] 598 |     ) -> Result<Value, Box<error::Error>> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 598 |     ) -> Result<Value, Box<dyn error::Error>> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/result.rs:69:29
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl std::convert::From<Box<Any + Send + 'static>> for Error {
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl std::convert::From<Box<dyn Any + Send + 'static>> for Error {
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/result.rs:70:20
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn from(e: Box<Any + Send + 'static>) -> Error {
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn from(e: Box<dyn Any + Send + 'static>) -> Error {
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/wallet.rs:100:32
[INFO] [stdout]     |
[INFO] [stdout] 100 | ) -> Result<WalletCommand, Box<error::Error>> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 100 | ) -> Result<WalletCommand, Box<dyn error::Error>> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/wallet.rs:281:69
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub fn process_command(config: &WalletConfig) -> Result<String, Box<error::Error>> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub fn process_command(config: &WalletConfig) -> Result<String, Box<dyn error::Error>> {
[INFO] [stdout]     |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/wallet.rs:567:64
[INFO] [stdout]     |
[INFO] [stdout] 567 | pub fn gen_keypair_file(outfile: String) -> Result<String, Box<error::Error>> {
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 567 | pub fn gen_keypair_file(outfile: String) -> Result<String, Box<dyn error::Error>> {
[INFO] [stdout]     |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/wallet.rs:635:59
[INFO] [stdout]     |
[INFO] [stdout] 635 | fn get_last_id(config: &WalletConfig) -> Result<Hash, Box<error::Error>> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 635 | fn get_last_id(config: &WalletConfig) -> Result<Hash, Box<dyn error::Error>> {
[INFO] [stdout]     |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/wallet.rs:652:25
[INFO] [stdout]     |
[INFO] [stdout] 652 | ) -> Result<String, Box<error::Error>> {
[INFO] [stdout]     |                         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 652 | ) -> Result<String, Box<dyn error::Error>> {
[INFO] [stdout]     |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/wallet.rs:70:32
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn cause(&self) -> Option<&error::Error> {
[INFO] [stdout]    |                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/wallet.rs:598:28
[INFO] [stdout]     |
[INFO] [stdout] 598 |     ) -> Result<Value, Box<error::Error>> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 598 |     ) -> Result<Value, Box<dyn error::Error>> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `KeypairUtil`
[INFO] [stdout]   --> src/ledger.rs:17:42
[INFO] [stdout]    |
[INFO] [stdout] 17 | use buffett_crypto::signature::{Keypair, KeypairUtil};
[INFO] [stdout]    |                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/broadcast_stage.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 70 |     for mut blobs in blobs_chunked {
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/broadcast_stage.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 70 |     for mut blobs in blobs_chunked {
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/packet.rs:209:13
[INFO] [stdout]     |
[INFO] [stdout] 209 |         let mut p = SharedPackets::default();
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/recvmmsg.rs:72:25
[INFO] [stdout]    |
[INFO] [stdout] 72 |                     let mut p = &mut packets[i];
[INFO] [stdout]    |                         ----^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/packet.rs:209:13
[INFO] [stdout]     |
[INFO] [stdout] 209 |         let mut p = SharedPackets::default();
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/recvmmsg.rs:72:25
[INFO] [stdout]    |
[INFO] [stdout] 72 |                     let mut p = &mut packets[i];
[INFO] [stdout]    |                         ----^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors; 44 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0425`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `buffett-core` (lib test) due to 5 previous errors; 44 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: `extern` fn uses type `[u8]`, which is not FFI-safe
[INFO] [stdout]   --> src/dynamic_program.rs:44:19
[INFO] [stdout]    |
[INFO] [stdout] 44 | type Entrypoint = unsafe extern "C" fn(infos: &mut Vec<KeyedAccount>, data: &[u8]);
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider using a raw pointer instead
[INFO] [stdout]    = note: slices have no C equivalent
[INFO] [stdout]    = note: `#[warn(improper_ctypes_definitions)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 41 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "bff12a03c3651913bd0aee765ec977c66830b93e345e8a922447e756097bf081", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bff12a03c3651913bd0aee765ec977c66830b93e345e8a922447e756097bf081", kill_on_drop: false }`
[INFO] [stdout] bff12a03c3651913bd0aee765ec977c66830b93e345e8a922447e756097bf081
[INFO] checking buffett-core-0.1.1 against try#b4fc5dbf0bc33be331f9d893db5b3a794f29724a+rustflags=-Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds for pr-121251
[INFO] extracting crate buffett-core 0.1.1 into /workspace/builds/worker-7-tc2/source
[INFO] validating manifest of crates.io crate buffett-core 0.1.1 on toolchain b4fc5dbf0bc33be331f9d893db5b3a794f29724a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate buffett-core 0.1.1
[INFO] finished tweaking crates.io crate buffett-core 0.1.1
[INFO] tweaked toml for crates.io crate buffett-core 0.1.1 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8a016d98bbfde6e4ee9e984afbcd2da6a6c373b4b3fc30abaa0855125ddff6db
[INFO] running `Command { std: "docker" "start" "-a" "8a016d98bbfde6e4ee9e984afbcd2da6a6c373b4b3fc30abaa0855125ddff6db", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8a016d98bbfde6e4ee9e984afbcd2da6a6c373b4b3fc30abaa0855125ddff6db", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8a016d98bbfde6e4ee9e984afbcd2da6a6c373b4b3fc30abaa0855125ddff6db", kill_on_drop: false }`
[INFO] [stdout] 8a016d98bbfde6e4ee9e984afbcd2da6a6c373b4b3fc30abaa0855125ddff6db
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 55e9ebd6ce3bc01d1614549825128aa41a0415902b9fad836f4c6f8d00b3ad03
[INFO] running `Command { std: "docker" "start" "-a" "55e9ebd6ce3bc01d1614549825128aa41a0415902b9fad836f4c6f8d00b3ad03", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.153
[INFO] [stderr]     Checking futures v0.1.31
[INFO] [stderr]    Compiling maybe-uninit v2.0.0
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]     Checking rand_core v0.3.1
[INFO] [stderr]    Compiling memoffset v0.5.6
[INFO] [stderr]    Compiling autocfg v0.1.8
[INFO] [stderr]     Checking lock_api v0.3.4
[INFO] [stderr]    Compiling parking_lot_core v0.6.3
[INFO] [stderr]    Compiling parking_lot v0.9.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.8.2
[INFO] [stderr]    Compiling syn v2.0.52
[INFO] [stderr]    Compiling unicase v2.7.0
[INFO] [stderr]     Checking idna v0.1.5
[INFO] [stderr]     Checking percent-encoding v1.0.1
[INFO] [stderr]     Checking itoa v0.4.8
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling version_check v0.1.5
[INFO] [stderr]     Checking aho-corasick v1.1.2
[INFO] [stderr]     Checking adler v1.0.2
[INFO] [stderr]     Checking miniz_oxide v0.7.2
[INFO] [stderr]    Compiling rand_chacha v0.1.1
[INFO] [stderr]    Compiling rand_pcg v0.1.2
[INFO] [stderr]    Compiling parking_lot_core v0.3.1
[INFO] [stderr]    Compiling hyper v0.12.36
[INFO] [stderr]     Checking log v0.3.9
[INFO] [stderr]     Checking smallvec v0.6.14
[INFO] [stderr]    Compiling unicase v1.4.2
[INFO] [stderr]     Checking safemem v0.3.3
[INFO] [stderr]     Checking url v1.7.2
[INFO] [stderr]     Checking gimli v0.28.1
[INFO] [stderr]     Checking owning_ref v0.4.1
[INFO] [stderr]     Checking base64 v0.9.3
[INFO] [stderr]    Compiling backtrace v0.3.69
[INFO] [stderr]     Checking mime v0.2.6
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling rand v0.6.5
[INFO] [stderr]     Checking crossbeam-queue v0.2.3
[INFO] [stderr]     Checking object v0.32.2
[INFO] [stderr]     Checking language-tags v0.2.2
[INFO] [stderr]     Checking typeable v0.1.2
[INFO] [stderr]    Compiling rayon-core v1.12.1
[INFO] [stderr]     Checking traitobject v0.1.0
[INFO] [stderr]     Checking scopeguard v0.3.3
[INFO] [stderr]     Checking rustc-demangle v0.1.23
[INFO] [stderr]    Compiling crc32fast v1.4.0
[INFO] [stderr]    Compiling mime_guess v2.0.4
[INFO] [stderr]     Checking lock_api v0.1.5
[INFO] [stderr]     Checking crossbeam-deque v0.8.5
[INFO] [stderr]     Checking crossbeam-deque v0.7.4
[INFO] [stderr]     Checking generic-array v0.9.1
[INFO] [stderr]     Checking rand_xorshift v0.1.1
[INFO] [stderr]     Checking rand_hc v0.1.0
[INFO] [stderr]     Checking rand_isaac v0.1.1
[INFO] [stderr]     Checking bstr v1.9.1
[INFO] [stderr]    Compiling ring v0.13.5
[INFO] [stderr]     Checking tokio-executor v0.1.10
[INFO] [stderr]     Checking tokio-sync v0.1.8
[INFO] [stderr]     Checking want v0.2.0
[INFO] [stderr]     Checking regex-automata v0.4.5
[INFO] [stderr]    Compiling sys-info v0.5.10
[INFO] [stderr]     Checking unicode-width v0.1.11
[INFO] [stderr]     Checking antidote v1.0.0
[INFO] [stderr]     Checking tokio-current-thread v0.1.7
[INFO] [stderr]     Checking tokio-timer v0.2.13
[INFO] [stderr]     Checking arrayref v0.3.7
[INFO] [stderr]     Checking byte-tools v0.2.0
[INFO] [stderr]     Checking bs58 v0.2.5
[INFO] [stderr]     Checking digest v0.7.6
[INFO] [stderr]     Checking block-buffer v0.3.3
[INFO] [stderr]     Checking publicsuffix v1.5.6
[INFO] [stderr]     Checking try_from v0.3.2
[INFO] [stderr]    Compiling libloading v0.5.2
[INFO] [stderr]    Compiling nix v0.11.1
[INFO] [stderr]     Checking iana-time-zone v0.1.60
[INFO] [stderr]     Checking untrusted v0.6.2
[INFO] [stderr]     Checking fake-simd v0.1.2
[INFO] [stderr]     Checking half v1.8.3
[INFO] [stderr]     Checking dtoa v0.4.8
[INFO] [stderr]     Checking sha2 v0.7.1
[INFO] [stderr]     Checking flate2 v1.0.28
[INFO] [stderr]     Checking textwrap v0.11.0
[INFO] [stderr]     Checking base64 v0.10.1
[INFO] [stderr]     Checking ipnetwork v0.12.8
[INFO] [stderr]     Checking buffett-timing v0.1.1
[INFO] [stderr]     Checking ansi_term v0.12.1
[INFO] [stderr]     Checking rayon v1.9.0
[INFO] [stderr]     Checking vec_map v0.8.2
[INFO] [stderr]     Checking pnet_base v0.21.0
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking num_cpus v1.16.0
[INFO] [stderr]     Checking net2 v0.2.39
[INFO] [stderr]     Checking bytes v0.4.12
[INFO] [stderr]     Checking time v0.1.45
[INFO] [stderr]     Checking openssl-sys v0.9.101
[INFO] [stderr]     Checking rand v0.5.6
[INFO] [stderr]     Checking rand_os v0.1.3
[INFO] [stderr]     Checking tokio-threadpool v0.1.18
[INFO] [stderr]     Checking futures-cpupool v0.1.8
[INFO] [stderr]     Checking mio v0.6.23
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking hyper v0.10.16
[INFO] [stderr]     Checking cookie v0.12.0
[INFO] [stderr]     Checking tokio-io v0.1.13
[INFO] [stderr]     Checking http v0.1.21
[INFO] [stderr]     Checking string v0.2.1
[INFO] [stderr]     Checking tokio-buf v0.1.1
[INFO] [stderr]     Checking pnet_sys v0.21.0
[INFO] [stderr]     Checking tokio-codec v0.1.2
[INFO] [stderr]     Checking tokio-fs v0.1.7
[INFO] [stderr]    Compiling synstructure v0.12.6
[INFO] [stderr]     Checking tokio-reactor v0.1.12
[INFO] [stderr]     Checking mio-uds v0.6.8
[INFO] [stderr]     Checking addr2line v0.21.0
[INFO] [stderr]     Checking clap v2.34.0
[INFO] [stderr]     Checking uuid v0.7.4
[INFO] [stderr]     Checking tokio-udp v0.1.6
[INFO] [stderr]     Checking tokio-uds v0.2.7
[INFO] [stderr]     Checking tokio-tcp v0.1.4
[INFO] [stderr]     Checking parking_lot v0.6.4
[INFO] [stderr]     Checking pnet_datalink v0.21.0
[INFO] [stderr]     Checking dirs v1.0.5
[INFO] [stderr]     Checking tokio v0.1.22
[INFO] [stderr]     Checking socket2 v0.3.19
[INFO] [stderr]     Checking getopts v0.2.21
[INFO] [stderr]     Checking itertools v0.7.11
[INFO] [stderr]     Checking globset v0.4.14
[INFO] [stderr]     Checking regex v1.10.3
[INFO] [stderr]    Compiling failure_derive v0.1.8
[INFO] [stderr]     Checking env_logger v0.5.13
[INFO] [stderr]     Checking http-body v0.1.0
[INFO] [stderr]     Checking h2 v0.1.26
[INFO] [stderr]    Compiling serde_derive v1.0.197
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]     Checking failure v0.1.8
[INFO] [stderr]     Checking openssl v0.10.64
[INFO] [stderr]     Checking serde v1.0.197
[INFO] [stderr]     Checking native-tls v0.2.11
[INFO] [stderr]     Checking hyper-native-tls v0.3.0
[INFO] [stderr]     Checking hyper-tls v0.3.2
[INFO] [stderr]     Checking serde_json v1.0.114
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking generic-array v0.12.4
[INFO] [stderr]     Checking serde_urlencoded v0.5.5
[INFO] [stderr]     Checking serde_cbor v0.9.0
[INFO] [stderr]     Checking chrono v0.4.34
[INFO] [stderr]     Checking buffett-interface v0.1.0
[INFO] [stderr]     Checking bitconch-jsonrpc-core v0.1.0
[INFO] [stderr]     Checking influx_db_client v0.3.6
[INFO] [stderr]     Checking cookie_store v0.7.0
[INFO] [stderr]     Checking buffett-crypto v0.1.1
[INFO] [stderr]     Checking buffett-metrics v0.1.3
[INFO] [stderr]     Checking reqwest v0.9.24
[INFO] [stderr]     Checking bitconch-jsonrpc-server-utils v0.1.0
[INFO] [stderr]     Checking bitconch-jsonrpc-pubsub v0.1.0
[INFO] [stderr]     Checking buffett-budget v0.1.2
[INFO] [stderr]     Checking bitconch-jsonrpc-macros v0.1.0
[INFO] [stderr]     Checking bitconch-jsonrpc-http-server v0.1.0
[INFO] [stderr]     Checking buffett-core v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/tx_process.rs:78:53
[INFO] [stdout]    |
[INFO] [stdout] 78 |         let mut thread_hdls: Vec<JoinHandle<()>> = (0..NUM_THREADS)
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/tx_process.rs:122:37
[INFO] [stdout]     |
[INFO] [stdout] 122 |                 deserialize(&x.data[0..x.meta.size])
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/tx_process.rs:132:30
[INFO] [stdout]     |
[INFO] [stdout] 132 |                     for _ in 0..num {
[INFO] [stdout]     |                              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/tx_process.rs:156:77
[INFO] [stdout]     |
[INFO] [stdout] 156 |             let chunk_end = chunk_start + Entry::num_will_fit(&transactions[chunk_start..]);
[INFO] [stdout]     |                                                                             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/tx_process.rs:158:67
[INFO] [stdout]     |
[INFO] [stdout] 158 |             let results = bank.process_transactions(&transactions[chunk_start..chunk_end]);
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/tx_process.rs:160:63
[INFO] [stdout]     |
[INFO] [stdout] 160 |             let processed_transactions: Vec<_> = transactions[chunk_start..chunk_end]
[INFO] [stdout]     |                                                               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/crdt.rs:479:20
[INFO] [stdout]     |
[INFO] [stdout] 479 |         for idx in transmit_index.data..received_index {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/crdt.rs:508:20
[INFO] [stdout]     |
[INFO] [stdout] 508 |         for idx in transmit_index.coding..received_index {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]     --> src/crdt.rs:1205:10
[INFO] [stdout]      |
[INFO] [stdout] 1205 |         };
[INFO] [stdout]      |          ^ help: remove this semicolon
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/budget_program.rs:203:57
[INFO] [stdout]     |
[INFO] [stdout] 203 |             let writer = io::BufWriter::new(&mut output[8..8 + len as usize]);
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/budget_program.rs:220:28
[INFO] [stdout]     |
[INFO] [stdout] 220 |         deserialize(&input[8..8 + len as usize])
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/entry.rs:181:14
[INFO] [stdout]     |
[INFO] [stdout] 181 |     for _ in 1..num_hashes {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/fullnode.rs:493:34
[INFO] [stdout]     |
[INFO] [stdout] 493 |     pub fn close(self) -> Result<(Option<FullnodeReturnType>)> {
[INFO] [stdout]     |                                  ^                          ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 493 -     pub fn close(self) -> Result<(Option<FullnodeReturnType>)> {
[INFO] [stdout] 493 +     pub fn close(self) -> Result<Option<FullnodeReturnType>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ledger.rs:503:49
[INFO] [stdout]     |
[INFO] [stdout] 503 |                 if Entry::will_fit(transactions[chunk_start..chunk_end].to_vec()) {
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ledger.rs:525:30
[INFO] [stdout]     |
[INFO] [stdout] 525 |                 transactions[chunk_start..chunk_end].to_vec(),
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/netutil.rs:140:14
[INFO] [stdout]     |
[INFO] [stdout] 140 |     for _ in 0..num {
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/packet.rs:26:30
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub const BLOB_SIZE: usize = (64 * 1024 - 128); // wikipedia says there should be 20b for ipv4 headers
[INFO] [stdout]    |                              ^               ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 26 - pub const BLOB_SIZE: usize = (64 * 1024 - 128); // wikipedia says there should be 20b for ipv4 headers
[INFO] [stdout] 26 + pub const BLOB_SIZE: usize = 64 * 1024 - 128; // wikipedia says there should be 20b for ipv4 headers
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/packet.rs:168:55
[INFO] [stdout]     |
[INFO] [stdout] 168 |             match recv_mmsg(socket, &mut self.packets[i..]) {
[INFO] [stdout]     |                                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/packet.rs:267:50
[INFO] [stdout]     |
[INFO] [stdout] 267 |         let mut rdr = io::Cursor::new(&self.data[0..BLOB_INDEX_END]);
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/packet.rs:280:40
[INFO] [stdout]     |
[INFO] [stdout] 280 |         let e = deserialize(&self.data[BLOB_INDEX_END..BLOB_ID_END])?;
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/packet.rs:286:19
[INFO] [stdout]     |
[INFO] [stdout] 286 |         self.data[BLOB_INDEX_END..BLOB_ID_END].clone_from_slice(&wtr);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/packet.rs:291:50
[INFO] [stdout]     |
[INFO] [stdout] 291 |         let mut rdr = io::Cursor::new(&self.data[BLOB_ID_END..BLOB_FLAGS_END]);
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/packet.rs:299:19
[INFO] [stdout]     |
[INFO] [stdout] 299 |         self.data[BLOB_ID_END..BLOB_FLAGS_END].clone_from_slice(&wtr);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/packet.rs:313:50
[INFO] [stdout]     |
[INFO] [stdout] 313 |         let mut rdr = io::Cursor::new(&self.data[BLOB_FLAGS_END..BLOB_SIZE_END]);
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/packet.rs:321:19
[INFO] [stdout]     |
[INFO] [stdout] 321 |         self.data[BLOB_FLAGS_END..BLOB_SIZE_END].clone_from_slice(&wtr);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/packet.rs:326:20
[INFO] [stdout]     |
[INFO] [stdout] 326 |         &self.data[BLOB_HEADER_SIZE..]
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/packet.rs:329:24
[INFO] [stdout]     |
[INFO] [stdout] 329 |         &mut self.data[BLOB_HEADER_SIZE..]
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/packet.rs:365:18
[INFO] [stdout]     |
[INFO] [stdout] 365 |         for i in 0..NUM_BLOBS {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/recvmmsg.rs:53:14
[INFO] [stdout]    |
[INFO] [stdout] 53 |     for i in 0..count {
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/recvmmsg.rs:71:26
[INFO] [stdout]    |
[INFO] [stdout] 71 |                 for i in 0..n as usize {
[INFO] [stdout]    |                          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/replicate_stage.rs:101:50
[INFO] [stdout]     |
[INFO] [stdout] 101 |                 let _exit = Finalizer::new(exit);;
[INFO] [stdout]     |                                                  ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/request_stage.rs:30:37
[INFO] [stdout]    |
[INFO] [stdout] 30 |                 deserialize(&x.data[0..x.meta.size])
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:100:39
[INFO] [stdout]     |
[INFO] [stdout] 100 |         fn confirm_transaction(&self, Self::Metadata, String) -> Result<bool>;
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout]     = note: `#[warn(anonymous_parameters)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:100:55
[INFO] [stdout]     |
[INFO] [stdout] 100 |         fn confirm_transaction(&self, Self::Metadata, String) -> Result<bool>;
[INFO] [stdout]     |                                                       ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: String`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:103:36
[INFO] [stdout]     |
[INFO] [stdout] 103 |         fn get_account_info(&self, Self::Metadata, String) -> Result<Account>;
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:103:52
[INFO] [stdout]     |
[INFO] [stdout] 103 |         fn get_account_info(&self, Self::Metadata, String) -> Result<Account>;
[INFO] [stdout]     |                                                    ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: String`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:106:31
[INFO] [stdout]     |
[INFO] [stdout] 106 |         fn get_balance(&self, Self::Metadata, String) -> Result<i64>;
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:106:47
[INFO] [stdout]     |
[INFO] [stdout] 106 |         fn get_balance(&self, Self::Metadata, String) -> Result<i64>;
[INFO] [stdout]     |                                               ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: String`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:109:32
[INFO] [stdout]     |
[INFO] [stdout] 109 |         fn get_finality(&self, Self::Metadata) -> Result<usize>;
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:112:31
[INFO] [stdout]     |
[INFO] [stdout] 112 |         fn get_last_id(&self, Self::Metadata) -> Result<String>;
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:115:40
[INFO] [stdout]     |
[INFO] [stdout] 115 |         fn get_signature_status(&self, Self::Metadata, String) -> Result<RpcSignatureStatus>;
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:115:56
[INFO] [stdout]     |
[INFO] [stdout] 115 |         fn get_signature_status(&self, Self::Metadata, String) -> Result<RpcSignatureStatus>;
[INFO] [stdout]     |                                                        ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: String`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:118:41
[INFO] [stdout]     |
[INFO] [stdout] 118 |         fn get_transaction_count(&self, Self::Metadata) -> Result<u64>;
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:121:35
[INFO] [stdout]     |
[INFO] [stdout] 121 |         fn request_airdrop(&self, Self::Metadata, String, u64) -> Result<String>;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:121:51
[INFO] [stdout]     |
[INFO] [stdout] 121 |         fn request_airdrop(&self, Self::Metadata, String, u64) -> Result<String>;
[INFO] [stdout]     |                                                   ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: String`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:121:59
[INFO] [stdout]     |
[INFO] [stdout] 121 |         fn request_airdrop(&self, Self::Metadata, String, u64) -> Result<String>;
[INFO] [stdout]     |                                                           ^^^ help: try naming the parameter or explicitly ignoring it: `_: u64`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:124:36
[INFO] [stdout]     |
[INFO] [stdout] 124 |         fn send_transaction(&self, Self::Metadata, Vec<u8>) -> Result<String>;
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:124:52
[INFO] [stdout]     |
[INFO] [stdout] 124 |         fn send_transaction(&self, Self::Metadata, Vec<u8>) -> Result<String>;
[INFO] [stdout]     |                                                    ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Vec<u8>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/sigverify.rs:58:45
[INFO] [stdout]    |
[INFO] [stdout] 58 |         untrusted::Input::from(&packet.data[pubkey_start..pubkey_end]),
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/sigverify.rs:59:45
[INFO] [stdout]    |
[INFO] [stdout] 59 |         untrusted::Input::from(&packet.data[msg_start..msg_end]),
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/sigverify.rs:60:45
[INFO] [stdout]    |
[INFO] [stdout] 60 |         untrusted::Input::from(&packet.data[sig_start..sig_end]),
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sigverify_stage.rs:134:10
[INFO] [stdout]     |
[INFO] [stdout] 134 |         (0..4)
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/thin_client.rs:129:18
[INFO] [stdout]     |
[INFO] [stdout] 129 |         for x in 0..tries {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/tictactoe_dashboard_program.rs:31:43
[INFO] [stdout]    |
[INFO] [stdout] 31 |             serde_cbor::from_slice(&input[2..(2 + len)]).map_err(|err| {
[INFO] [stdout]    |                                           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/tictactoe_dashboard_program.rs:85:16
[INFO] [stdout]    |
[INFO] [stdout] 85 |         output[2..(2 + self_serialized.len())].clone_from_slice(&self_serialized);
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/tictactoe_program.rs:125:44
[INFO] [stdout]     |
[INFO] [stdout] 125 |             Game::same(x_or_o, &self.board[0..3])
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/tictactoe_program.rs:126:47
[INFO] [stdout]     |
[INFO] [stdout] 126 |             || Game::same(x_or_o, &self.board[3..6])
[INFO] [stdout]     |                                               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/tictactoe_program.rs:127:47
[INFO] [stdout]     |
[INFO] [stdout] 127 |             || Game::same(x_or_o, &self.board[6..9])
[INFO] [stdout]     |                                               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/tictactoe_program.rs:183:43
[INFO] [stdout]     |
[INFO] [stdout] 183 |             serde_cbor::from_slice(&input[1..=len]).map_err(|err| {
[INFO] [stdout]     |                                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/tictactoe_program.rs:230:16
[INFO] [stdout]     |
[INFO] [stdout] 230 |         output[1..=self_serialized.len()].clone_from_slice(&self_serialized);
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/tpu.rs:81:37
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn join(self) -> thread::Result<(Option<TpuReturnType>)> {
[INFO] [stdout]    |                                     ^                     ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 81 -     fn join(self) -> thread::Result<(Option<TpuReturnType>)> {
[INFO] [stdout] 81 +     fn join(self) -> thread::Result<Option<TpuReturnType>> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/wallet.rs:306:22
[INFO] [stdout]     |
[INFO] [stdout] 306 |             for _ in 0..20 {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/window.rs:84:10
[INFO] [stdout]    |
[INFO] [stdout] 84 |         (consumed..received)
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/window.rs:368:6
[INFO] [stdout]     |
[INFO] [stdout] 368 |     (0..WINDOW_SIZE).map(|_| WindowSlot::default()).collect()
[INFO] [stdout]     |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `tmp_ledger_path` in this scope
[INFO] [stdout]    --> src/ledger.rs:550:16
[INFO] [stdout]     |
[INFO] [stdout] 550 |     let path = tmp_ledger_path(name);
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] note: function `token_service::tests::tmp_ledger_path` exists but is inaccessible
[INFO] [stdout]    --> src/token_service.rs:312:5
[INFO] [stdout]     |
[INFO] [stdout] 312 |     fn tmp_ledger_path(name: &str) -> String {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not accessible
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `tmp_ledger_path` in this scope
[INFO] [stdout]    --> src/ledger.rs:724:27
[INFO] [stdout]     |
[INFO] [stdout] 724 |         let ledger_path = tmp_ledger_path("test_ledger_reader_writer");
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] note: function `token_service::tests::tmp_ledger_path` exists but is inaccessible
[INFO] [stdout]    --> src/token_service.rs:312:5
[INFO] [stdout]     |
[INFO] [stdout] 312 |     fn tmp_ledger_path(name: &str) -> String {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not accessible
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `tmp_ledger_path` in this scope
[INFO] [stdout]    --> src/ledger.rs:804:27
[INFO] [stdout]     |
[INFO] [stdout] 804 |         let ledger_path = tmp_ledger_path("test_recover_ledger");
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] note: function `token_service::tests::tmp_ledger_path` exists but is inaccessible
[INFO] [stdout]    --> src/token_service.rs:312:5
[INFO] [stdout]     |
[INFO] [stdout] 312 |     fn tmp_ledger_path(name: &str) -> String {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not accessible
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `tmp_ledger_path` in this scope
[INFO] [stdout]    --> src/ledger.rs:855:27
[INFO] [stdout]     |
[INFO] [stdout] 855 |         let ledger_path = tmp_ledger_path("test_verify_ledger");
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] note: function `token_service::tests::tmp_ledger_path` exists but is inaccessible
[INFO] [stdout]    --> src/token_service.rs:312:5
[INFO] [stdout]     |
[INFO] [stdout] 312 |     fn tmp_ledger_path(name: &str) -> String {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not accessible
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/tx_process.rs:78:53
[INFO] [stdout]    |
[INFO] [stdout] 78 |         let mut thread_hdls: Vec<JoinHandle<()>> = (0..NUM_THREADS)
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/tx_process.rs:122:37
[INFO] [stdout]     |
[INFO] [stdout] 122 |                 deserialize(&x.data[0..x.meta.size])
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/tx_process.rs:132:30
[INFO] [stdout]     |
[INFO] [stdout] 132 |                     for _ in 0..num {
[INFO] [stdout]     |                              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/tx_process.rs:156:77
[INFO] [stdout]     |
[INFO] [stdout] 156 |             let chunk_end = chunk_start + Entry::num_will_fit(&transactions[chunk_start..]);
[INFO] [stdout]     |                                                                             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/tx_process.rs:158:67
[INFO] [stdout]     |
[INFO] [stdout] 158 |             let results = bank.process_transactions(&transactions[chunk_start..chunk_end]);
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/tx_process.rs:160:63
[INFO] [stdout]     |
[INFO] [stdout] 160 |             let processed_transactions: Vec<_> = transactions[chunk_start..chunk_end]
[INFO] [stdout]     |                                                               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/crdt.rs:479:20
[INFO] [stdout]     |
[INFO] [stdout] 479 |         for idx in transmit_index.data..received_index {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/crdt.rs:508:20
[INFO] [stdout]     |
[INFO] [stdout] 508 |         for idx in transmit_index.coding..received_index {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]     --> src/crdt.rs:1205:10
[INFO] [stdout]      |
[INFO] [stdout] 1205 |         };
[INFO] [stdout]      |          ^ help: remove this semicolon
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/budget_program.rs:203:57
[INFO] [stdout]     |
[INFO] [stdout] 203 |             let writer = io::BufWriter::new(&mut output[8..8 + len as usize]);
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/budget_program.rs:220:28
[INFO] [stdout]     |
[INFO] [stdout] 220 |         deserialize(&input[8..8 + len as usize])
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/entry.rs:181:14
[INFO] [stdout]     |
[INFO] [stdout] 181 |     for _ in 1..num_hashes {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/fullnode.rs:493:34
[INFO] [stdout]     |
[INFO] [stdout] 493 |     pub fn close(self) -> Result<(Option<FullnodeReturnType>)> {
[INFO] [stdout]     |                                  ^                          ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 493 -     pub fn close(self) -> Result<(Option<FullnodeReturnType>)> {
[INFO] [stdout] 493 +     pub fn close(self) -> Result<Option<FullnodeReturnType>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Keypair`
[INFO] [stdout]   --> src/ledger.rs:17:33
[INFO] [stdout]    |
[INFO] [stdout] 17 | use buffett_crypto::signature::{Keypair, KeypairUtil};
[INFO] [stdout]    |                                 ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ledger.rs:503:49
[INFO] [stdout]     |
[INFO] [stdout] 503 |                 if Entry::will_fit(transactions[chunk_start..chunk_end].to_vec()) {
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ledger.rs:525:30
[INFO] [stdout]     |
[INFO] [stdout] 525 |                 transactions[chunk_start..chunk_end].to_vec(),
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ledger.rs:595:10
[INFO] [stdout]     |
[INFO] [stdout] 595 |         (0..num)
[INFO] [stdout]     |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ledger.rs:792:18
[INFO] [stdout]     |
[INFO] [stdout] 792 |         for i in 0..len {
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/netutil.rs:140:14
[INFO] [stdout]     |
[INFO] [stdout] 140 |     for _ in 0..num {
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `buffett_crypto::hash::Hash`
[INFO] [stdout]  --> src/packet.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use buffett_crypto::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Block`, `next_entries_mut`
[INFO] [stdout]  --> src/packet.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::ledger::{next_entries_mut, Block};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/packet.rs:26:30
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub const BLOB_SIZE: usize = (64 * 1024 - 128); // wikipedia says there should be 20b for ipv4 headers
[INFO] [stdout]    |                              ^               ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 26 - pub const BLOB_SIZE: usize = (64 * 1024 - 128); // wikipedia says there should be 20b for ipv4 headers
[INFO] [stdout] 26 + pub const BLOB_SIZE: usize = 64 * 1024 - 128; // wikipedia says there should be 20b for ipv4 headers
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/packet.rs:168:55
[INFO] [stdout]     |
[INFO] [stdout] 168 |             match recv_mmsg(socket, &mut self.packets[i..]) {
[INFO] [stdout]     |                                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/packet.rs:267:50
[INFO] [stdout]     |
[INFO] [stdout] 267 |         let mut rdr = io::Cursor::new(&self.data[0..BLOB_INDEX_END]);
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/packet.rs:280:40
[INFO] [stdout]     |
[INFO] [stdout] 280 |         let e = deserialize(&self.data[BLOB_INDEX_END..BLOB_ID_END])?;
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/packet.rs:286:19
[INFO] [stdout]     |
[INFO] [stdout] 286 |         self.data[BLOB_INDEX_END..BLOB_ID_END].clone_from_slice(&wtr);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/packet.rs:291:50
[INFO] [stdout]     |
[INFO] [stdout] 291 |         let mut rdr = io::Cursor::new(&self.data[BLOB_ID_END..BLOB_FLAGS_END]);
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/packet.rs:299:19
[INFO] [stdout]     |
[INFO] [stdout] 299 |         self.data[BLOB_ID_END..BLOB_FLAGS_END].clone_from_slice(&wtr);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/packet.rs:313:50
[INFO] [stdout]     |
[INFO] [stdout] 313 |         let mut rdr = io::Cursor::new(&self.data[BLOB_FLAGS_END..BLOB_SIZE_END]);
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/packet.rs:321:19
[INFO] [stdout]     |
[INFO] [stdout] 321 |         self.data[BLOB_FLAGS_END..BLOB_SIZE_END].clone_from_slice(&wtr);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/packet.rs:326:20
[INFO] [stdout]     |
[INFO] [stdout] 326 |         &self.data[BLOB_HEADER_SIZE..]
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/packet.rs:329:24
[INFO] [stdout]     |
[INFO] [stdout] 329 |         &mut self.data[BLOB_HEADER_SIZE..]
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/packet.rs:365:18
[INFO] [stdout]     |
[INFO] [stdout] 365 |         for i in 0..NUM_BLOBS {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/poh.rs:63:18
[INFO] [stdout]    |
[INFO] [stdout] 63 |         for _ in 1..entry.num_hashes {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/recvmmsg.rs:53:14
[INFO] [stdout]    |
[INFO] [stdout] 53 |     for i in 0..count {
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/recvmmsg.rs:71:26
[INFO] [stdout]    |
[INFO] [stdout] 71 |                 for i in 0..n as usize {
[INFO] [stdout]    |                          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/replicate_stage.rs:101:50
[INFO] [stdout]     |
[INFO] [stdout] 101 |                 let _exit = Finalizer::new(exit);;
[INFO] [stdout]     |                                                  ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/request_stage.rs:30:37
[INFO] [stdout]    |
[INFO] [stdout] 30 |                 deserialize(&x.data[0..x.meta.size])
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:100:39
[INFO] [stdout]     |
[INFO] [stdout] 100 |         fn confirm_transaction(&self, Self::Metadata, String) -> Result<bool>;
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout]     = note: `#[warn(anonymous_parameters)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:100:55
[INFO] [stdout]     |
[INFO] [stdout] 100 |         fn confirm_transaction(&self, Self::Metadata, String) -> Result<bool>;
[INFO] [stdout]     |                                                       ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: String`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:103:36
[INFO] [stdout]     |
[INFO] [stdout] 103 |         fn get_account_info(&self, Self::Metadata, String) -> Result<Account>;
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:103:52
[INFO] [stdout]     |
[INFO] [stdout] 103 |         fn get_account_info(&self, Self::Metadata, String) -> Result<Account>;
[INFO] [stdout]     |                                                    ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: String`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:106:31
[INFO] [stdout]     |
[INFO] [stdout] 106 |         fn get_balance(&self, Self::Metadata, String) -> Result<i64>;
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:106:47
[INFO] [stdout]     |
[INFO] [stdout] 106 |         fn get_balance(&self, Self::Metadata, String) -> Result<i64>;
[INFO] [stdout]     |                                               ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: String`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:109:32
[INFO] [stdout]     |
[INFO] [stdout] 109 |         fn get_finality(&self, Self::Metadata) -> Result<usize>;
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:112:31
[INFO] [stdout]     |
[INFO] [stdout] 112 |         fn get_last_id(&self, Self::Metadata) -> Result<String>;
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:115:40
[INFO] [stdout]     |
[INFO] [stdout] 115 |         fn get_signature_status(&self, Self::Metadata, String) -> Result<RpcSignatureStatus>;
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:115:56
[INFO] [stdout]     |
[INFO] [stdout] 115 |         fn get_signature_status(&self, Self::Metadata, String) -> Result<RpcSignatureStatus>;
[INFO] [stdout]     |                                                        ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: String`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:118:41
[INFO] [stdout]     |
[INFO] [stdout] 118 |         fn get_transaction_count(&self, Self::Metadata) -> Result<u64>;
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:121:35
[INFO] [stdout]     |
[INFO] [stdout] 121 |         fn request_airdrop(&self, Self::Metadata, String, u64) -> Result<String>;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:121:51
[INFO] [stdout]     |
[INFO] [stdout] 121 |         fn request_airdrop(&self, Self::Metadata, String, u64) -> Result<String>;
[INFO] [stdout]     |                                                   ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: String`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:121:59
[INFO] [stdout]     |
[INFO] [stdout] 121 |         fn request_airdrop(&self, Self::Metadata, String, u64) -> Result<String>;
[INFO] [stdout]     |                                                           ^^^ help: try naming the parameter or explicitly ignoring it: `_: u64`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:124:36
[INFO] [stdout]     |
[INFO] [stdout] 124 |         fn send_transaction(&self, Self::Metadata, Vec<u8>) -> Result<String>;
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc.rs:124:52
[INFO] [stdout]     |
[INFO] [stdout] 124 |         fn send_transaction(&self, Self::Metadata, Vec<u8>) -> Result<String>;
[INFO] [stdout]     |                                                    ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Vec<u8>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/sigverify.rs:58:45
[INFO] [stdout]    |
[INFO] [stdout] 58 |         untrusted::Input::from(&packet.data[pubkey_start..pubkey_end]),
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/sigverify.rs:59:45
[INFO] [stdout]    |
[INFO] [stdout] 59 |         untrusted::Input::from(&packet.data[msg_start..msg_end]),
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/sigverify.rs:60:45
[INFO] [stdout]    |
[INFO] [stdout] 60 |         untrusted::Input::from(&packet.data[sig_start..sig_end]),
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sigverify_stage.rs:134:10
[INFO] [stdout]     |
[INFO] [stdout] 134 |         (0..4)
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/system_transaction.rs:132:14
[INFO] [stdout]     |
[INFO] [stdout] 132 |     for i in 0..end {
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/system_transaction.rs:133:14
[INFO] [stdout]     |
[INFO] [stdout] 133 |         if a[i..i + b.len()] == b[..] {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/thin_client.rs:129:18
[INFO] [stdout]     |
[INFO] [stdout] 129 |         for x in 0..tries {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/tictactoe_dashboard_program.rs:31:43
[INFO] [stdout]    |
[INFO] [stdout] 31 |             serde_cbor::from_slice(&input[2..(2 + len)]).map_err(|err| {
[INFO] [stdout]    |                                           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/tictactoe_dashboard_program.rs:85:16
[INFO] [stdout]    |
[INFO] [stdout] 85 |         output[2..(2 + self_serialized.len())].clone_from_slice(&self_serialized);
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/tictactoe_program.rs:125:44
[INFO] [stdout]     |
[INFO] [stdout] 125 |             Game::same(x_or_o, &self.board[0..3])
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/tictactoe_program.rs:126:47
[INFO] [stdout]     |
[INFO] [stdout] 126 |             || Game::same(x_or_o, &self.board[3..6])
[INFO] [stdout]     |                                               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/tictactoe_program.rs:127:47
[INFO] [stdout]     |
[INFO] [stdout] 127 |             || Game::same(x_or_o, &self.board[6..9])
[INFO] [stdout]     |                                               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/tictactoe_program.rs:183:43
[INFO] [stdout]     |
[INFO] [stdout] 183 |             serde_cbor::from_slice(&input[1..=len]).map_err(|err| {
[INFO] [stdout]     |                                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/tictactoe_program.rs:230:16
[INFO] [stdout]     |
[INFO] [stdout] 230 |         output[1..=self_serialized.len()].clone_from_slice(&self_serialized);
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/tpu.rs:81:37
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn join(self) -> thread::Result<(Option<TpuReturnType>)> {
[INFO] [stdout]    |                                     ^                     ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 81 -     fn join(self) -> thread::Result<(Option<TpuReturnType>)> {
[INFO] [stdout] 81 +     fn join(self) -> thread::Result<Option<TpuReturnType>> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/wallet.rs:306:22
[INFO] [stdout]     |
[INFO] [stdout] 306 |             for _ in 0..20 {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/window.rs:84:10
[INFO] [stdout]    |
[INFO] [stdout] 84 |         (consumed..received)
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/window.rs:368:6
[INFO] [stdout]     |
[INFO] [stdout] 368 |     (0..WINDOW_SIZE).map(|_| WindowSlot::default()).collect()
[INFO] [stdout]     |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]  --> src/logger.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::{Once, ONCE_INIT};
[INFO] [stdout]   |                       ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]  --> src/logger.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 | static INIT: Once = ONCE_INIT;
[INFO] [stdout]   |                     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]   |
[INFO] [stdout] 4 | static INIT: Once = Once::new();
[INFO] [stdout]   |                     ~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/choose_gossip_peer_strategy.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 |     random: &'a Fn() -> u64,
[INFO] [stdout]    |                 ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 16 |     random: &'a dyn Fn() -> u64,
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/choose_gossip_peer_strategy.rs:44:20
[INFO] [stdout]    |
[INFO] [stdout] 44 |     get_stake: &'a Fn(Pubkey) -> f64,
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |     get_stake: &'a dyn Fn(Pubkey) -> f64,
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/result.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 |     JoinError(Box<Any + Send + 'static>),
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 16 |     JoinError(Box<dyn Any + Send + 'static>),
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/choose_gossip_peer_strategy.rs:21:28
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(random: &'a Fn() -> u64) -> Self {
[INFO] [stdout]    |                            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(random: &'a dyn Fn() -> u64) -> Self {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/choose_gossip_peer_strategy.rs:51:24
[INFO] [stdout]    |
[INFO] [stdout] 51 |         get_stake: &'a Fn(Pubkey) -> f64,
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 51 |         get_stake: &'a dyn Fn(Pubkey) -> f64,
[INFO] [stdout]    |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]  --> src/logger.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::{Once, ONCE_INIT};
[INFO] [stdout]   |                       ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]  --> src/logger.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 | static INIT: Once = ONCE_INIT;
[INFO] [stdout]   |                     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]   |
[INFO] [stdout] 4 | static INIT: Once = Once::new();
[INFO] [stdout]   |                     ~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/result.rs:69:29
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl std::convert::From<Box<Any + Send + 'static>> for Error {
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl std::convert::From<Box<dyn Any + Send + 'static>> for Error {
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/result.rs:70:20
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn from(e: Box<Any + Send + 'static>) -> Error {
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn from(e: Box<dyn Any + Send + 'static>) -> Error {
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/wallet.rs:100:32
[INFO] [stdout]     |
[INFO] [stdout] 100 | ) -> Result<WalletCommand, Box<error::Error>> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 100 | ) -> Result<WalletCommand, Box<dyn error::Error>> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/wallet.rs:281:69
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub fn process_command(config: &WalletConfig) -> Result<String, Box<error::Error>> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub fn process_command(config: &WalletConfig) -> Result<String, Box<dyn error::Error>> {
[INFO] [stdout]     |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/wallet.rs:567:64
[INFO] [stdout]     |
[INFO] [stdout] 567 | pub fn gen_keypair_file(outfile: String) -> Result<String, Box<error::Error>> {
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 567 | pub fn gen_keypair_file(outfile: String) -> Result<String, Box<dyn error::Error>> {
[INFO] [stdout]     |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/wallet.rs:635:59
[INFO] [stdout]     |
[INFO] [stdout] 635 | fn get_last_id(config: &WalletConfig) -> Result<Hash, Box<error::Error>> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 635 | fn get_last_id(config: &WalletConfig) -> Result<Hash, Box<dyn error::Error>> {
[INFO] [stdout]     |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/wallet.rs:652:25
[INFO] [stdout]     |
[INFO] [stdout] 652 | ) -> Result<String, Box<error::Error>> {
[INFO] [stdout]     |                         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 652 | ) -> Result<String, Box<dyn error::Error>> {
[INFO] [stdout]     |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/wallet.rs:70:32
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn cause(&self) -> Option<&error::Error> {
[INFO] [stdout]    |                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/wallet.rs:598:28
[INFO] [stdout]     |
[INFO] [stdout] 598 |     ) -> Result<Value, Box<error::Error>> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 598 |     ) -> Result<Value, Box<dyn error::Error>> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/choose_gossip_peer_strategy.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 |     random: &'a Fn() -> u64,
[INFO] [stdout]    |                 ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 16 |     random: &'a dyn Fn() -> u64,
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/choose_gossip_peer_strategy.rs:44:20
[INFO] [stdout]    |
[INFO] [stdout] 44 |     get_stake: &'a Fn(Pubkey) -> f64,
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |     get_stake: &'a dyn Fn(Pubkey) -> f64,
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/result.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 |     JoinError(Box<Any + Send + 'static>),
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 16 |     JoinError(Box<dyn Any + Send + 'static>),
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/choose_gossip_peer_strategy.rs:21:28
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(random: &'a Fn() -> u64) -> Self {
[INFO] [stdout]    |                            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(random: &'a dyn Fn() -> u64) -> Self {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/choose_gossip_peer_strategy.rs:51:24
[INFO] [stdout]    |
[INFO] [stdout] 51 |         get_stake: &'a Fn(Pubkey) -> f64,
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 51 |         get_stake: &'a dyn Fn(Pubkey) -> f64,
[INFO] [stdout]    |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/result.rs:69:29
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl std::convert::From<Box<Any + Send + 'static>> for Error {
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl std::convert::From<Box<dyn Any + Send + 'static>> for Error {
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/result.rs:70:20
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn from(e: Box<Any + Send + 'static>) -> Error {
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn from(e: Box<dyn Any + Send + 'static>) -> Error {
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/wallet.rs:100:32
[INFO] [stdout]     |
[INFO] [stdout] 100 | ) -> Result<WalletCommand, Box<error::Error>> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 100 | ) -> Result<WalletCommand, Box<dyn error::Error>> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/wallet.rs:281:69
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub fn process_command(config: &WalletConfig) -> Result<String, Box<error::Error>> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub fn process_command(config: &WalletConfig) -> Result<String, Box<dyn error::Error>> {
[INFO] [stdout]     |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/wallet.rs:567:64
[INFO] [stdout]     |
[INFO] [stdout] 567 | pub fn gen_keypair_file(outfile: String) -> Result<String, Box<error::Error>> {
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 567 | pub fn gen_keypair_file(outfile: String) -> Result<String, Box<dyn error::Error>> {
[INFO] [stdout]     |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/wallet.rs:635:59
[INFO] [stdout]     |
[INFO] [stdout] 635 | fn get_last_id(config: &WalletConfig) -> Result<Hash, Box<error::Error>> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 635 | fn get_last_id(config: &WalletConfig) -> Result<Hash, Box<dyn error::Error>> {
[INFO] [stdout]     |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/wallet.rs:652:25
[INFO] [stdout]     |
[INFO] [stdout] 652 | ) -> Result<String, Box<error::Error>> {
[INFO] [stdout]     |                         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 652 | ) -> Result<String, Box<dyn error::Error>> {
[INFO] [stdout]     |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/wallet.rs:70:32
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn cause(&self) -> Option<&error::Error> {
[INFO] [stdout]    |                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/wallet.rs:598:28
[INFO] [stdout]     |
[INFO] [stdout] 598 |     ) -> Result<Value, Box<error::Error>> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 598 |     ) -> Result<Value, Box<dyn error::Error>> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `KeypairUtil`
[INFO] [stdout]   --> src/ledger.rs:17:42
[INFO] [stdout]    |
[INFO] [stdout] 17 | use buffett_crypto::signature::{Keypair, KeypairUtil};
[INFO] [stdout]    |                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/broadcast_stage.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 70 |     for mut blobs in blobs_chunked {
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/broadcast_stage.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 70 |     for mut blobs in blobs_chunked {
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/packet.rs:209:13
[INFO] [stdout]     |
[INFO] [stdout] 209 |         let mut p = SharedPackets::default();
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/recvmmsg.rs:72:25
[INFO] [stdout]    |
[INFO] [stdout] 72 |                     let mut p = &mut packets[i];
[INFO] [stdout]    |                         ----^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/packet.rs:209:13
[INFO] [stdout]     |
[INFO] [stdout] 209 |         let mut p = SharedPackets::default();
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/recvmmsg.rs:72:25
[INFO] [stdout]    |
[INFO] [stdout] 72 |                     let mut p = &mut packets[i];
[INFO] [stdout]    |                         ----^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` fn uses type `[u8]`, which is not FFI-safe
[INFO] [stdout]   --> src/dynamic_program.rs:44:19
[INFO] [stdout]    |
[INFO] [stdout] 44 | type Entrypoint = unsafe extern "C" fn(infos: &mut Vec<KeyedAccount>, data: &[u8]);
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider using a raw pointer instead
[INFO] [stdout]    = note: slices have no C equivalent
[INFO] [stdout]    = note: `#[warn(improper_ctypes_definitions)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors; 92 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0425`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `buffett-core` (lib test) due to 5 previous errors; 92 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: 84 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "55e9ebd6ce3bc01d1614549825128aa41a0415902b9fad836f4c6f8d00b3ad03", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "55e9ebd6ce3bc01d1614549825128aa41a0415902b9fad836f4c6f8d00b3ad03", kill_on_drop: false }`
[INFO] [stdout] 55e9ebd6ce3bc01d1614549825128aa41a0415902b9fad836f4c6f8d00b3ad03
